<?php

declare(strict_types=1);

namespace App\Model;


/**
 * @property int $id
 * @property string $order_id 订单号
 * @property string $trade_id 外部交易单号
 * @property int $uid 用户id
 * @property string $channel 渠道
 * @property int $pay_platform_id 支付通道ID
 * @property int $type 充值通道类型
 * @property string $oaid 手机oaid
 * @property string $imsi 手机imsi
 * @property string $imei 手机imei
 * @property int $consume_type 消费类型，购买vip(大于20)购买金币(小于20) 0微信 1手机 2QQ 3私密图片 4私密视频
 * @property string $price 充值金额
 * @property int $goods 购买商品的数量
 * @property string $fee 充值手续费
 * @property string $description 充值描述
 * @property int $pay_status 支付状态，0支付失败，1支付成功，2正在支付
 * @property int $notify_status 同步状态，0未同步，1同步完成
 * @property int $post_status 回传状态，0未回传，1回传成功
 * @property int $pay_time 支付时间
 * @property string $ip ip
 * @property int $is_discount 是否扣量，1不扣量，2扣量
 * @property int $from 充值来源，1安卓，2ios
 * @property int $version_code 客户端版本号
 * @property int $order_from_type 支付数据来源
 * @property int $network_state 网络状态1 wifi，2 2G，3 3G，4 4G
 * @property int $order_robot_id 机器人id
 * @property int $order_msg_group_id 套路id
 * @property int $trade_type
 * @property int $send_good 充值送金币
 * @property int $auto_xiubi
 * @property int $send_chat_coin 赠送聊币
 * @property int $user_id 被购买用户id
 * @property int $goods_id 购买的视频或图片id
 * @property int $is_first_recharge 是否首次充值订单
 * @property string $package 包名
 */
class Order extends Model
{
    /**
     * The table associated with the model.
     */
    protected ?string $table = 'tb_order';

    /**
     * The attributes that are mass assignable.
     */
    protected array $fillable = [];

    /**
     * The attributes that should be cast to native types.
     */
    protected array $casts = ['id' => 'integer', 'uid' => 'integer', 'pay_platform_id' => 'integer', 'type' => 'integer', 'consume_type' => 'integer', 'goods' => 'integer', 'pay_status' => 'integer', 'notify_status' => 'integer', 'post_status' => 'integer', 'pay_time' => 'integer', 'is_discount' => 'integer', 'from' => 'integer', 'version_code' => 'integer', 'order_from_type' => 'integer', 'network_state' => 'integer', 'order_robot_id' => 'integer', 'order_msg_group_id' => 'integer', 'trade_type' => 'integer', 'send_good' => 'integer', 'auto_xiubi' => 'integer', 'send_chat_coin' => 'integer', 'user_id' => 'integer', 'goods_id' => 'integer', 'is_first_recharge' => 'integer'];

    public function checkFirstRecharge($uid)
    {
        $res = self::query()->where('uid', $uid)->where('consume_type', '<', 50)->where('consume_type', '>', 6)
            ->where('pay_status', 1)->where('notify_status', 1)->exists();

        return $res;
    }
}
